/**
 * 
 */
package org.iridium.allcomments.persistance;

/**
 * @author iridium
 * 
 */
public interface UserTagDAO {
	
	/**
	 * if a tag of a user exists
	 * @param userId
	 * @param tag
	 * @return
	 */
	public boolean existsTag(long userId, String tag);
	
	/**
	 * add an item
	 * 
	 * @param userId
	 *            user ID
	 * @param tag
	 * @param visibility
	 *            visibility, public: 0, selected people: 1, friends: 2,
	 *            selected and friends: 3, and private: 4
	 */
	public void addItem(long userId, String tag, int visibility);

	/**
	 * delete an item
	 * 
	 * @param userId
	 *            user ID
	 * @param tag
	 */
	public void delItem(long userId, String tag);

	/**
	 * update visibility
	 * 
	 * @param userId
	 *            user ID
	 * @param tag
	 * @param visibility
	 *            visibility, public: 0, selected people: 1, friends: 2,
	 *            selected and friends: 3, and private: 4
	 */
	public void updateVisibility(long userId, String tag, int visibility);

	/**
	 * delete all tags of a user
	 * 
	 * @param userId
	 */
	public void deleteTag(long userId);

	/**
	 * delete a tag of a user
	 * 
	 * @param userId
	 * @param tag
	 */
	public void deleteTag(long userId, String tag);

}
